#ifndef MOTIONDETECTION_H
#define MOTIONDETECTION_H

#include <string>
#include <list>

#include "opencv2/core/core.hpp"

#include "background.h"
#include "BackGroundModel.h"

// TODO Change from motion to depth
class MotionDetection
{
public:
    MotionDetection( int imgWidth , int imgHeight ,
                     BackGroundModel *bgGenRGB , BackGroundModel *bgGenDepth );

    bool addFrame( const cv::Mat &imageRGB , const cv::Mat &imageDepth );


    int getMode();
    std::string getStatus();

    cv::Mat &getBackgroundRGB();
    cv::Mat &getBackgroundDepth();
    cv::Mat &getMotionRGB();
    cv::Mat &getMotionDepth();

private:

    int mode;

    BackGroundModel* bgGenRGB;
    BackGroundModel* bgGenDepth;

    cv::Mat changeRGB;
    cv::Mat changeMot;

    int frameCount;
};


#endif // MOTIONDETECTION_H
